package p.ithorns.framework.core.message;


import java.lang.reflect.Type;

/**
 * @Author: liuhaitao
 * @Date: 2022/8/22 13:30
 * @Description:
 */
public interface MsgListener<T> {


    /**
     * 获取订阅主题
     *
     * @return String
     */
    String getTopic();

    /**
     * 消息接收处理
     *
     * @param message -消息
     */
    void onMessage(T message);

    /**
     * 获取数据类型
     *
     * @return T
     */
    default Class<T> getRawType() {
        Type[] genericInterfaces =  getClass().getGenericInterfaces();
        return (Class<T>) genericInterfaces[0];
    }

}
